home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 701-725 / 708 / intuisup / intuisup42.lha / Intuisup / source.lha / Render / render.h < prev   
C/C++ Source or Header  |  1992-05-12  |  5KB  |  145 lines

  1. /* $Revision Header *** Header built automatically - do not edit! ***********
  2.  *
  3.  *    (C) Copyright 1991 by Torsten Jürgeleit
  4.  *
  5.  *    Name .....: render.h
  6.  *    Created ..: Thursday 19-Dec-91 15:14:39
  7.  *    Revision .: 2
  8.  *
  9.  *    Date        Author                 Comment
  10.  *    =========   ====================   ====================
  11.  *    12-May-92   Torsten Jürgeleit      text colors for IClearWindow()
  12.  *    30-Apr-92   Torsten Jürgeleit      raster for clear_window()
  13.  *    19-Dec-91   Torsten Jürgeleit      Created this file!
  14.  *
  15.  ****************************************************************************
  16.  *
  17.  *    Defines, structures, prototypes and pragmas for render functions
  18.  *
  19.  * $Revision Header ********************************************************/
  20.  
  21. #ifndef    ISUP_RENDER_H
  22. #define    ISUP_RENDER_H
  23.  
  24.     /* ID for ISUP structures and intuition messages */
  25.  
  26. #define ISUP_ID        ((ULONG)'I' << 24 | (ULONG)'S' << 16 | 'U' << 8 | 'P')
  27.  
  28.     /* Defines for render info flags */
  29.  
  30. #define RENDER_INFO_FLAG_INNER_WINDOW        (1 << 0)   /* use upper left corner of inner window as location (0,0) */
  31. #define RENDER_INFO_FLAG_BACK_FILL        (1 << 1)   /* fill window back ground with different color */
  32. #define RENDER_INFO_FLAG_AVAIL_FONTS        (1 << 2)   /* scan available fonts and use this list for ask_font/open_font */
  33.  
  34.     /* Defines for open window flags */
  35.  
  36. #define OPEN_WINDOW_FLAG_CENTER_WINDOW        (1 << 0)   /* center window on screen */
  37. #define OPEN_WINDOW_FLAG_RENDER_PENS        (1 << 1)   /* use render pens for detail and backfill pen */
  38.  
  39.     /* Defines for clear window flags */
  40.  
  41. #define CLEAR_WINDOW_FLAG_CUSTOM_DRAW_MODE    (1 << 0)   /* don't change draw mode */
  42. #define CLEAR_WINDOW_FLAG_CUSTOM_COLOR        (1 << 1)   /* don't change background color */
  43. #define CLEAR_WINDOW_FLAG_NORMAL_COLOR        (1 << 2)   /* use normal background color */
  44. #define CLEAR_WINDOW_FLAG_USE_RASTER        (1 << 3)   /* use standard raster for window background */
  45. #define CLEAR_WINDOW_FLAG_ABSOLUTE_POS        (1 << 4)   /* don't add window border offset to given upper left position */
  46. #define CLEAR_WINDOW_FLAG_TEXT1_COLOR        (1 << 5)   /* use text color 1 */
  47. #define CLEAR_WINDOW_FLAG_TEXT2_COLOR        (1 << 6)   /* use text color 2 */
  48.  
  49.     /* Defines for internal use only */
  50.  
  51. #define MAX_RENDER_COLORS    16    /* max screen colors to look at */
  52. #define MAX_RENDER_IMAGES    11
  53.  
  54. #define IMAGE_ARROW_LEFT    0
  55. #define IMAGE_ARROW_RIGHT    1
  56. #define IMAGE_ARROW_UP        2
  57. #define IMAGE_ARROW_DOWN    3
  58. #define IMAGE_KNOB_UNSELECTED    4
  59. #define IMAGE_KNOB_SELECTED    5
  60. #define IMAGE_CHECK_UNSELECTED    6
  61. #define IMAGE_CHECK_SELECTED    7
  62. #define IMAGE_CYCLE        8
  63. #define IMAGE_COUNT_LEFT    9
  64. #define IMAGE_COUNT_RIGHT    10
  65.  
  66. #define IMAGE_ARROW_WIDTH    9    /* fixed dimensions for images */
  67. #define IMAGE_ARROW_HEIGHT    5
  68. #define IMAGE_ARROW_DEPTH    1
  69.  
  70. #define IMAGE_KNOB_WIDTH    18
  71. #define IMAGE_KNOB_HEIGHT    9
  72. #define IMAGE_KNOB_DEPTH    2
  73.  
  74. #define IMAGE_CHECK_WIDTH    13
  75. #define IMAGE_CHECK_HEIGHT    7
  76. #define IMAGE_CHECK_DEPTH    1
  77.  
  78. #define IMAGE_CYCLE_WIDTH    16
  79. #define IMAGE_CYCLE_HEIGHT    9
  80. #define IMAGE_CYCLE_DEPTH    2
  81.  
  82. #define IMAGE_COUNT_WIDTH    8
  83. #define IMAGE_COUNT_HEIGHT    5
  84. #define IMAGE_COUNT_DEPTH    1
  85.  
  86. #define IMAGE_HORIZ_OFFSET    4
  87. #define IMAGE_VERT_OFFSET    2
  88.  
  89. #define INTUISUP_DATA_END    0    /* end marker for data arrays */
  90.  
  91.     /* Structures */
  92.  
  93. struct RenderInfo {
  94.     LONG    ri_ID;        /* id = 'ISUP' */
  95.     USHORT    ri_ScreenWidth;
  96.     USHORT    ri_ScreenHeight;
  97.     UBYTE    ri_ScreenDepth;
  98.     UBYTE    ri_WindowBorderTop;
  99.     UBYTE    ri_WindowBorderLeft;
  100.     UBYTE    ri_WindowBorderRight;
  101.     UBYTE    ri_WindowBorderBottom;
  102.     UBYTE    ri_HighlightPen;
  103.     UBYTE    ri_ShadowPen;
  104.     UBYTE    ri_TextPen1;
  105.     UBYTE    ri_TextPen2;
  106.     UBYTE    ri_BackPen;
  107.     USHORT    ri_Flags;
  108.     ULONG    ri_ImageDataSize;
  109.     USHORT    *ri_ImageData;
  110.     ULONG    ri_AvailFontsHeaderSize;
  111.     struct AvailFontsHeader  *ri_AvailFontsHeader;
  112.     struct TextFont          *ri_TextFont;
  113.     struct TextAttr          ri_TextAttr;
  114.     struct Image             ri_Images[MAX_RENDER_IMAGES];
  115. };
  116.     /* Global prototypes */
  117.  
  118. struct RenderInfo  *get_render_info(struct Screen  *screen, USHORT flags);
  119. SHORT calc_color_difference(SHORT color1, SHORT color2);
  120. VOID  free_render_info(struct RenderInfo  *ri);
  121. struct Window  *open_window(struct RenderInfo  *ri, struct NewWindow  *nw,
  122.                                   USHORT flags);
  123. VOID clear_window(struct RenderInfo  *ri, struct Window  *win,
  124.          USHORT left_edge, USHORT top_edge, USHORT width, USHORT height,
  125.                                   USHORT flags);
  126. VOID close_window(struct Window  *win, BOOL more_windows);
  127. struct AvailFontsHeader  *avail_fonts(struct RenderInfo  *ri);
  128. struct TextAttr          *ask_font(struct RenderInfo  *ri,
  129.                               struct TextAttr  *ta);
  130. struct TextFont          *open_font(struct RenderInfo  *ri,
  131.                               struct TextAttr  *ta);
  132.     /* Global pragmas (Aztec C v5.2a) */
  133.  
  134. #pragma intfunc(get_render_info(a0,d0))
  135. #pragma regcall(calc_color_difference(d0,d1))   /* internal function */
  136. #pragma intfunc(free_render_info(a0))
  137. #pragma intfunc(open_window(a0,a1,d0))
  138. #pragma intfunc(clear_window(a0,a1,d0,d1,d2,d3,d4))
  139. #pragma intfunc(close_window(a0,d0))
  140. #pragma intfunc(avail_fonts(a0))
  141. #pragma intfunc(ask_font(a0,a1))
  142. #pragma intfunc(open_font(a0,a1))
  143.  
  144. #endif   /* ISUP_RENDER_H */
  145.